There are a number of methods by which to route IP packet data between nodes (devices) in a domain of one or more networks. Unicasting refers to one-to-one communication of data between a single source and destination node. Multicasting, on the other hand, refers to one-to-many transmission of data from a source node to a group of downstream destination nodes (who are members of the group) by addressing the data using a single multicast address that refers to all members of the group. In a multicast system, when packets are sent to the multicast address from the source, routers forward the packet to other routers to reach the group members following a route or routes established by a multicast routing protocol. Each router receives packets through an upstream link or links from the source, and forwards the packets out downstream links towards the group members selected by the multicast routing protocol. Packets can be routed either towards the group members or away from the source. The latter of these routing techniques is called reverse path routing and is used extensively in IP multicasting, such as in protocols Protocol-Independent Multicast Dense Mode (PIM-DM) [RFC 3973] or Distance Vector Multicast Routing Protocol (DVMRP) [RFC 1075]. In reverse path routing, multicast packets flow away from the source along a tree rooted at the source. Dense-mode reverse path multicast routing protocols, such as PIM-DM and DVMRP, are used in multicasting groups in which group members are somewhat densely distributed throughout the domain and an excessive number of sources per group do not exist. Notable, however, is that each router operating in dense-mode has to accept all multicast traffic admitted to any of its upstream links, making decisions on whether to forward only after receiving the packets. This can result in unwanted traffic on parts of the upstream link under the circumstances that multiple routers are attached to the same upstream link, some of which have downstream group members for which the router is responsible to forward the multicast traffic and some of which do not.
In certain circumstances, multicasting may take place using multiple networks. In particular, multicasting may take place using tunneling across a second, lower layer network (which itself may or may not contain any group members) to reach one or more group members on the original network. One example of tunneling is the use of Virtual Private Networks (VPNs). In unicast routing, edge devices of the lower layer network are used as entry and exit points of a tunnel to carry unicast traffic, which is then further routed to its destination on the original network. Likewise, in multicast routing, edge devices of the lower layer network are used as entry and exit points of a tunnel to route multicast traffic, which is then further routed to downstream members in the original network. As edge routers employing a dense-mode reverse-path multicast routing algorithm, however, must accept all multicast traffic admitted to the tunnel, this causes inefficiencies in routing when tunneling is used, as one or more of the edge devices may not have any downstream group members to which to pass the multicast traffic.
Accordingly, there is a need for more efficient method of dense-mode multicasting when tunneling is used.